/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package mx.edu.itschapala.sistemas.septimo.control;

import java.util.ArrayList;
import java.util.List;
import mx.edu.itschapala.sistemas.septimo.modelo.Cliente;
import mx.edu.itschapala.sistemas.septimo.modelo.Producto;
import mx.edu.itschapala.sistemas.septimo.vista.enumeracion.TipoBusqueda;

/**
 *
 * @author Estudiante
 */
public class ClienteLnLista implements ClientelnLocal {
    private Cliente cliente;
     private List<Cliente> listaCliente = new ArrayList<Cliente>();
    @Override
    public void registrar(Cliente cliente) {
     
        listaCliente.add(cliente);
    }

    @Override
    public void modificar(Cliente cliente) {
    Cliente tmp = buscar(cliente.getId());
    if(tmp!=null){
    listaCliente.remove(tmp);
    listaCliente.add(cliente);
    }
    }

    @Override
    public void eliminar(Cliente cliente) {
         Cliente c = null;
          for (Cliente cliente1 : listaCliente) {
                    if( cliente1.getId()==cliente.getId()){
                    c = cliente1;
                    break;
                    }
      
        }
           listaCliente.remove(c);
    }

    @Override
    public Cliente buscar(int id) {
         for (Cliente cliente1 : listaCliente) {
          if( cliente1.getId()==id){
          this.cliente=cliente1;
          break;
          
          }
         
         
         }
        return cliente;
    }

    @Override
    public List<Cliente> getTodos() {
       return listaCliente;
    }

    @Override
    public List<Cliente> getPorNombre(String Nombre, TipoBusqueda criterio) {
         List<Cliente> tmp = new ArrayList<Cliente>();
        switch (criterio) {
            case INICIA:
                for (Cliente c : listaCliente) {
                    if (c.getNombre().startsWith(Nombre)) {
                        tmp.add(c);
                    }
                }
                break;
            case CONTIENE:
                for (Cliente c : listaCliente) {
                    if (c.getNombre().contains(Nombre)) {
                        tmp.add(c);
                    }
                }
                break;

        }
        return tmp;
    }
    
}
